/* 
 * File:   enums.h
 * Author: Deste
 *
 * Created on 5 mars 2012, 18:05
 */

#ifndef ENUMS_H
#define	ENUMS_H
#define MAINSCOPE "main"
#define STACKOFFSET 5

#include <iostream>
#include <stdio.h>
#include <queue>
#include <map>
#include <string>
#include <fstream>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <boost/regex.hpp>
#include <climits>
#include <sstream>


using namespace std;


typedef enum Types { INTT, BOOLT, PROCT } TypesP;
typedef enum Scopes {GLOBALS, LOCALS} ScopesP;
typedef enum Errors {GRTMIS,LESMIS,GEQMIS,LEQMIS,EQUMIS,NEQMIS,ADDMIS,SUBMIS,MULMIS,DIVMIS,ANDMIS,ORMIS,NOTMIS,NEGMIS,IFMIS,WHILEMIS,ASSIGNMIS,READMIS,WRITEMIS,DUPID,DUPPROGID,WRGPARNUM,PARTYPEMIS,PROCINEXP,UNDEFID,DUPPROCID,DUPFUNCID,HIDID,PROCLEFT,SCOPEMIS,UNDEFTOK,MSG}ErrorsP;


enum Keywords {INTEGER,BOOLEAN,LT,GT,LE,GE,EQ,NE,AND,OR,NOT,PLUS,MINUS,DIV,MUL,TRUE,FALSE,WRITE,READ,PRG_INIT,PRG_END,FUN,PROC,BLK_INIT,BLK_END,WHILE,DO,IF,THEN,ELSE,VAR,ID,ERROR,ASSIGN,COMM_INIT,COMM_END,TYPE_SEP,ISTR_SEP,EXPR_SEP,LST_INIT,LST_END,TRUEB,FALSEB,NUM,ENDFILE};
//enum Types { INTEGER, BOOLEAN };
//enum Operators{LT,GT,LE,GE,EQ,NE,AND,OR,NOT,PLUS,MINUS,DIV,MUL};
//enum Boolval{TRUE,FALSE};
//enum IOroutines{WRITE,READ};



#endif	/* ENUMS_H */

